﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Dominio;

namespace Interfaz
{
    public partial class VentHabilitaciones : Form
    {

        #region atributos

        private List<Articulo> lArticulos;
        private List<Cliente> lClientes;
        private List<Proveedor> lProveedores;

        #endregion

        #region constructor

        public VentHabilitaciones()
        {
            InitializeComponent();
            lArticulos = Sistema.traerArticulosNoHabilitados();
            lClientes = Sistema.traerClientesNoHabilitados();
            lProveedores = Sistema.traerProveedoresNoHabilitados();
            RadioArticulos.Checked = true;            
        }

        #endregion

        #region eventos

        private void BotonHabilitar_Click(object sender, EventArgs e)
        {
            try
            {
                ListViewItem itemAux = ListaHabilitaciones.SelectedItems[0];
                if (RadioArticulos.Checked)
                {

                    Articulo articuloAux = (Articulo)itemAux.Tag;
                    //Sistema.modificarArticulo(articuloAux.Codigo, articuloAux.Descripcion, articuloAux.FechaIngreso,
                    //    articuloAux.Imagen, articuloAux.IVA, articuloAux.Nombre, articuloAux.Stock, true, articuloAux);
                    lArticulos.Remove(articuloAux);
                    cargarListaArticulos();
                }
                if (RadioClientes.Checked)
                {
                    Cliente clienteAux = (Cliente)itemAux.Tag;
                    Sistema.modificarCliente(clienteAux.Direccion, clienteAux.EMail, clienteAux.Fax,
                        clienteAux.Nombre, clienteAux.PlanDePago, clienteAux.RUT, true, clienteAux);
                    lClientes.Remove(clienteAux);
                    cargarListaClientes();
                }
                if (RadioProveedores.Checked)
                {
                    Proveedor proveedorAux = (Proveedor)itemAux.Tag;
                    Sistema.modificarProveedor(proveedorAux.Direccion, proveedorAux.EMail, proveedorAux.Fax,
                        proveedorAux.Nombre, proveedorAux.PlanDePago, proveedorAux.RUT, true, proveedorAux);
                    lProveedores.Remove(proveedorAux);
                    cargarListaProveedores();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Debe seleccionar un item a habilitar");
            }
        }

        private void BotonCancelar_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void RadioArticulos_CheckedChanged(object sender, EventArgs e)
        {
            if (RadioArticulos.Checked)
            {
                cargarListaArticulos();
            }            
        }

        private void RadioClientes_CheckedChanged(object sender, EventArgs e)
        {
            if (RadioClientes.Checked)
            {
                cargarListaClientes();
            }            
        }

        private void RadioProveedores_CheckedChanged(object sender, EventArgs e)
        {
            if (RadioProveedores.Checked)
            {
                cargarListaProveedores();
            }           
        }

        #endregion

        #region metodos

        public void cargarListaArticulos()
        {
            ListaHabilitaciones.Items.Clear();
            for (int i = 0; i < lArticulos.Count; i++)
            {
                ListViewItem itemArticulo = new ListViewItem();
                itemArticulo.Text = lArticulos[i].Codigo;
                itemArticulo.Tag = lArticulos[i];
                ListaHabilitaciones.Items.Add(itemArticulo);
                ListaHabilitaciones.Items[i].SubItems.Add(lArticulos[i].Nombre);
            }
        }

        public void cargarListaClientes()
        {
            ListaHabilitaciones.Items.Clear();
            for (int i = 0; i < lClientes.Count; i++)
            {
                ListViewItem itemCliente = new ListViewItem();
                itemCliente.Text = lClientes[i].OID.ToString();
                itemCliente.Tag = lClientes[i];
                ListaHabilitaciones.Items.Add(itemCliente);
                ListaHabilitaciones.Items[i].SubItems.Add(lClientes[i].Nombre);
            }
        }

        public void cargarListaProveedores()
        {
            ListaHabilitaciones.Items.Clear();
            for (int i = 0; i < lProveedores.Count; i++)
            {
                ListViewItem itemProveedor = new ListViewItem();
                itemProveedor.Text = lProveedores[i].OID.ToString();
                itemProveedor.Tag = lProveedores[i];
                ListaHabilitaciones.Items.Add(itemProveedor);
                ListaHabilitaciones.Items[i].SubItems.Add(lProveedores[i].Nombre);
            }
        }

        #endregion

    }
}
